// 进行Axios 的实例创建
import axios from 'axios'
import Vue from 'vue'
import router from '@/router'
import { Message } from 'element-ui'

// 创建实例
const instance = axios.create({
  baseURL: 'http://localhost:8888/api/private/v1/',
  headers: {}
})
// 请求拦截器
instance.interceptors.request.use(config => {
  if (config.url === 'login') return config
  config.headers.authorization = window.sessionStorage.getItem('token')
  return config
})
// 响应拦截器
instance.interceptors.response.use(config => {
  if (config.data.meta.status === 401) {
    console.log('token 有问题')
    Message({
      type: 'error',
      message: '登陆状态失败，请重新登录',
      duration: 3000
    })
    router.push('/login')
    return config.data
  }
  return config.data
})
// 创建一个对象
const plugin = {
  install () {
    Vue.prototype.$http = instance
    Vue.prototype.$get = instance.get
    Vue.prototype.$post = instance.post
    Vue.prototype.$put = instance.put
    Vue.prototype.$delete = instance.delete
  }
}
// 导出Plugin
export default plugin
